package com.lin.mapper;

import com.lin.annotations.TakeTime;
import com.lin.entity.PlaneData;
import com.lin.entity.vo.PlaneDataVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Mapper
public interface PlaneDataMapper {

    int batchInsert(List<PlaneData> planeDataList);

    /**
     * 查询飞机最新的信息 (过滤被追踪的飞机)
     *
     * @param traceTarIds 被追踪的飞机
     * @return
     */
    @TakeTime
    List<PlaneData> getNewest(List<String> traceTarIds);

    @TakeTime
    List<PlaneData> getSecondNew();

    /**
     * 获取id为tarIds的飞机的最新信息
     *
     * @param tarIds
     * @return
     */
    List<PlaneData> getByTarId(@Param("tarIds") List<String> tarIds);

    List<PlaneData> getRecent(Integer recent, String tarId);

    List<PlaneData> getRecentByTarids(@Param("recent") Integer recent, @Param("tarIds") List<String> tarIds);

    List<PlaneData> list(PlaneDataVo planeDataVo);

    List<PlaneData> listByDate(@Param("start") Date start, @Param("end") Date end);

    List<PlaneData> getNewestByDate(Date maxTime);
}
